package array

import "soluty.cc/go/godash/types"

// DropWhile 创建一个切片数组，去除array中从起点开始到 predicate 返回假值结束部分。predicate 会传入3个参数： (value, index, array)。
func DropWhile (array []T, predicate types.Predicate) []T {
	var ret []T
	var drop = true
	for index, value := range array {
		if !drop {
			ret = append(ret, value)
			continue
		}
		drop = predicate(value, index, array)
		if !drop {
			ret = append(ret, value)
		}
	}
	return ret
}
